@@ -57,10 +57,11 @@ module DryRunnable |
||
| 57 | 57 |
logger.log(sev, message) |
| 58 | 58 |
end |
| 59 | 59 |
|
| 60 |
- def create_event(event_hash) |
|
| 60 |
+ def create_event(event) |
|
| 61 | 61 |
if can_create_events? |
| 62 |
- @dry_run_results[:events] << event_hash[:payload] |
|
| 63 |
- events.build({ user: user, expires_at: new_event_expiration_date }.merge(event_hash))
|
|
| 62 |
+ event = build_event(event) |
|
| 63 |
+ @dry_run_results[:events] << event.payload |
|
| 64 |
+ event |
|
| 64 | 65 |
else |
| 65 | 66 |
error "This Agent cannot create events!" |
| 66 | 67 |
end |
@@ -66,9 +66,11 @@ module SortableEvents |
||
| 66 | 66 |
end |
| 67 | 67 |
end |
| 68 | 68 |
|
| 69 |
- def create_event(attrs) |
|
| 69 |
+ def create_event(event) |
|
| 70 | 70 |
if @sortable_events |
| 71 |
- @sortable_events << events.build({ user: user }.merge(attrs))
|
|
| 71 |
+ event = build_event(event) |
|
| 72 |
+ @sortable_events << event |
|
| 73 |
+ event |
|
| 72 | 74 |
else |
| 73 | 75 |
super |
| 74 | 76 |
end |
@@ -82,8 +84,7 @@ module SortableEvents |
||
| 82 | 84 |
ensure |
| 83 | 85 |
events, @sortable_events = @sortable_events, nil |
| 84 | 86 |
sort_events(events).each do |event| |
| 85 |
- event.expires_at ||= new_event_expiration_date |
|
| 86 |
- event.save! |
|
| 87 |
+ create_event(event) |
|
| 87 | 88 |
end |
| 88 | 89 |
end |
| 89 | 90 |
end |
@@ -105,12 +105,18 @@ class Agent < ActiveRecord::Base |
||
| 105 | 105 |
raise "Implement me in your subclass" |
| 106 | 106 |
end |
| 107 | 107 |
|
| 108 |
- def create_event(attrs) |
|
| 108 |
+ def build_event(event) |
|
| 109 |
+ event = events.build(event) if event.is_a?(Hash) |
|
| 110 |
+ event.user = user |
|
| 111 |
+ event.expires_at ||= new_event_expiration_date |
|
| 112 |
+ event |
|
| 113 |
+ end |
|
| 114 |
+ |
|
| 115 |
+ def create_event(event) |
|
| 109 | 116 |
if can_create_events? |
| 110 |
- events.create!({
|
|
| 111 |
- :user => user, |
|
| 112 |
- :expires_at => new_event_expiration_date |
|
| 113 |
- }.merge(attrs)) |
|
| 117 |
+ event = build_event(event) |
|
| 118 |
+ event.save! |
|
| 119 |
+ event |
|
| 114 | 120 |
else |
| 115 | 121 |
error "This Agent cannot create events!" |
| 116 | 122 |
end |